package com.servitware.cardio.domain;

import java.io.Serializable;
import java.util.Calendar;
import java.util.Date;

import com.servitware.cardio.domain.transport.SesionTx;
import com.servitware.core.id.base.IntIded;

public class Sesion extends IntIded implements Serializable
{
	private static final long serialVersionUID = 2942327113092116549L;
	
	
	private Integer index = new Integer(1);

	private Date fecha;
	
	/*
	 * minutos
	 * 24 hrs = 1449 mins
	 */
	private Integer duracion;
	private Date momentoAlgido;
	private String observaciones;
	private String archivo;
	private String checkSum;
	
	public Sesion()
	{
		super();
	}
	
/*
 * NO TOCAR -- No es generado
 * -------------------------------------------------
 */
	public Sesion( SesionTx sTx )
	{
		this.setId( sTx.getId() );
		this.index = 1;
		this.fecha = sTx.getFecha();
		this.duracion = sTx.getDuracion();
		this.momentoAlgido = sTx.getMomentoAlgido();
		this.archivo = sTx.getArchivo();
		this.checkSum = sTx.getCheckSum();
		this.observaciones = sTx.getObservaciones();
	}

	/**
	 * Genera objeto de transporte para web service RESTful/JSON
	 *  
	 * @return
	 * 		version SexionTx de Sesion
	 */
	public SesionTx getSesionTx()
	{
		SesionTx stx = new SesionTx( getIdAsInteger() );
	
		stx.setArchivo( getArchivo() );
		stx.setCheckSum( getCheckSum() );
		stx.setFecha( getFecha() );
		stx.setDuracion( getDuracion());
		stx.setMomentoAlgido( getMomentoAlgido() );
		stx.setObservaciones( getObservaciones() );
		
		return stx;
	}
	
	public String getNombreArchivo()
	{
		StringBuilder sb = new StringBuilder( String.valueOf(getId()) );
		sb.append( "." + archivo);
		return sb.toString();
	}
	
	public Date getHoraParada()
	{
		Calendar calendar = Calendar.getInstance();
		calendar.add(Calendar.MINUTE, duracion);
		return calendar.getTime();
	}

	

/*
 * --------------------------------------------------------------------------------------------------------
 * fin codigo no generado
 * --------------------------------------------------------------------------------------------------------
 * getters & setters
 * -------------------------------------------------------------------------------------------------------- 
 */

	public Integer getIndex()
	{
		return index;
	}


	public void setIndex(Integer index)
	{
		this.index = index;
	}

	public Date getFecha()
	{
		return fecha;
	}


	public Integer getDuracion()
	{
		return duracion;
	}

	public void setDuracion(Integer duracion)
	{
		this.duracion = duracion;
	}


	public String getObservaciones()
	{
		return observaciones;
	}

	public void setObservaciones(String observaciones)
	{
		this.observaciones = observaciones;
	}

	public String getArchivo()
	{
		return archivo;
	}

	public void setArchivo(String archivo)
	{
		this.archivo = archivo;
	}

	public String getCheckSum()
	{
		return checkSum;
	}

	public void setCheckSum(String checkSum)
	{
		this.checkSum = checkSum;
	}

	public Date getMomentoAlgido()
	{
		return momentoAlgido;
	}

	public void setMomentoAlgido(Date momentoAlgido)
	{
		this.momentoAlgido = momentoAlgido;
	}

	public void setFecha(Date fecha)
	{
		this.fecha = fecha;
	}



}

